package com.ny.demo519;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

//主程序类，包含程序入口main方法
public class Demo {
    public static void main(String[] args) {
        TestMap testMap = new TestMap(); // 创建员工管理类对象
        Map<String, Emp> map = new HashMap<>(); // 创建员工Map集合
        boolean flag = true; // 循环控制标志

        while (flag) { // 主菜单循环
            System.out.println("欢迎来到员工系统");
            System.out.println("0.退出系统");
            System.out.println("1.添加员工");
            System.out.println("2.查询所有的员工");
            System.out.println("3.根据员工姓名查询员工信息");
            System.out.println("4.删除员工信息");
            System.out.println("5.根据员工编号查询员工信息");
            System.out.println("6.根据员工编号修改年龄");

            System.out.println("请选择功能");

            Scanner scanner = new Scanner(System.in);
            int n = scanner.nextInt(); // 读取用户选择

            switch (n) {
                case 0: // 退出系统
                    System.out.println("退出系统");
                    flag = false;
                    break;

                case 1: // 添加员工
                    System.out.println("欢迎来到添加的界面");
                    System.out.println("请输入员工的编号:");
                    String addNumber = scanner.next();
                    System.out.println("请输入员工的姓名:");
                    String addName = scanner.next();
                    System.out.println("请输入员工的年龄:");
                    int addAge = scanner.nextInt();
                    Emp addEmp = new Emp(addNumber, addName, addAge);
                    testMap.addEmp(map, addEmp);
                    System.out.println(map);
                    break;

                case 2: // 查询所有员工
                    System.out.println("查询所有的员工");
                    testMap.findAllEmp(map);
                    break;

                case 3: // 根据姓名查询
                    System.out.println("根据员工姓名查询员工信息");
                    System.out.println("请输入需要查询的员工姓名:");
                    String empName = scanner.next();
                    Emp emp = testMap.findEmpName(map, empName);
                    System.out.println(emp);
                    break;

                case 4: // 删除员工
                    System.out.println("删除员工信息");
                    System.out.println("请输入需要删除员工编号:");
                    String empNumber = scanner.next();
                    testMap.deleteEmp(map, empNumber);
                    System.out.println(map);
                    break;

                case 5: // 根据工号查询
                    System.out.println("根据员工编号查询员工信息");
                    System.out.println("请输入需要查询的员工编号");
                    String eId = scanner.next();
                    emp = testMap.findEmpNumber(map, eId);
                    System.out.println(emp);
                    break;

                case 6: // 修改年龄
                    System.out.println("根据工号修改年龄");
                    System.out.println("请输入需要查询的员工工号");
                    String updateNumber = scanner.next();
                    System.out.println("请输入需要修改的年龄");
                    int updateAge = scanner.nextInt();
                    emp = testMap.findEmpNumber(map, updateNumber);
                    if (emp != null) {
                        emp.setAge(updateAge);
                        testMap.updateEmp(map, emp);
                    }
                    System.out.println(map);
                    break;
            }
        }
    }
}